<?php
/**
* PHP version 5
*
* This program is free software: you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation, either version 3 of the License, or
* (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with this program. If not, see <http://www.gnu.org/licenses/>.
*
* @package Textbook
* @subpackage General
* @author Aljaz Srebrnic <a2piratesoft@gmail.com>;
* @author E. Pavletič
* @copyright 2008 a2PirateSoftware
* @license GPL License v3 <http://www.gnu.org/copyleft/gpl.html>
*/

class User_Form_Recovery extends ZNF_Action_ActionForm
{
    private $_username = null;
    private $_email = null;

    private $emailPattern = "^[!-'*+=?{-~/-9A-Z^-z-]+(\.[!-'*+=?{-~/-9A-Z^-z-]+)*@[!-'*+=?{-~/-9A-Z^-z-]+\.[!-'*+=?{-~/-9A-Z^-z-]{2,}";

    public function validate()
    {
        $errors = new ZNF_Action_ActionErrors();
        $translation =  new ZNF_Presentation_Translation('User', $_SESSION['znf']['lang']);

        if (($this->getUsername() == null) || strlen($this->getUsername()) > 20)
            $errors->addError(1, $translation->get('errorUsernameNotValid'));

        if(($this->getEmail() == null) || ereg($this->emailPattern, $this->getEmail()) === FALSE)
            $errors->addError(2, $translation->get('errorEmailNotValid'));

        if(strcmp($_COOKIE['tbtoken'], md5($_POST['key'])))
            $errors->addError(3, $translation->get('errorFormTimedOut'));

        return $errors;
    }

    public function populate()
    {
	if(isset($_POST['username']))
	    $this->_username = htmlspecialchars(addslashes($_POST['username']));

	if(isset($_POST['email']))
	    $this->_email = htmlspecialchars(addslashes($_POST['email']));
    }

    public function getUsername(){return $this->_username;}
    public function getEmail(){return $this->_email;}

}

?>